import pandas as pd
import numpy as np
from matplotlib.backends.backend_agg import FigureCanvasAgg
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 创建示例数据集
np.random.seed(42)
dates = pd.date_range('2023-01-01', periods=100, freq='D')
sales_data = pd.DataFrame({
    '日期': dates,
    '销售额': np.random.normal(1000, 200, 100).cumsum(),
    '利润': np.random.normal(200, 50, 100).cumsum(),
    '访问量': np.random.poisson(500, 100),
    '产品类别': np.random.choice(['电子产品', '服装', '食品', '家居'], 100),
    '地区': np.random.choice(['华北', '华东', '华南', '西部'], 100)
})

# 设置日期索引
sales_data.set_index('日期', inplace=True)
print("数据集预览:")
print(sales_data.head())

print("=== 线图示例 ===")

fig = plt.figure(figsize=(15, 10))

canvas = FigureCanvasAgg(fig)
canvas.draw()

# 获取 RGB 数据
buf = canvas.buffer_rgba()


# 单线图
plt.subplot(2, 3, 1)
sales_data['销售额'].plot(title='销售额趋势', grid=True)
plt.ylabel('销售额')

# 多线图
plt.subplot(2, 3, 2)
sales_data[['销售额', '利润']].plot(title='销售额与利润趋势', grid=True)
plt.ylabel('金额')

# 面积图
plt.subplot(2, 3, 3)
sales_data[['销售额', '利润']].plot.area(alpha=0.7, title='销售额与利润面积图')
plt.ylabel('金额')

plt.tight_layout()
plt.show()